Event Versioning in Event Sourcing Pattern

๐Ÿ“˜ 1. Events First: ๋ฒ„์ €๋‹ & Upcaster ํ•ต์‹ฌ ๊ฐœ๋…

โญ๏ธ ํ•„์ˆ˜ ๊ฐœ๋…


๐Ÿ“„ ๋ฌธ์„œ / ๋ธ”๋กœ๊ทธ

  1. Martin Fowler โ€“ Event Sourcing (๋ฒ„์ €๋‹ ์„ค๋ช… ํฌํ•จ)
    https://martinfowler.com/eaaDev/EventSourcing.html

key: โ€œVersioned events sectionโ€


  1. Axon Framework โ€“ Upcasting/Schema Evolution
    https://docs.axoniq.io/reference-guide/axon-framework/events/event-versioning

์ถ•์•ฝ:


  1. Event Sourcing Patterns โ€” Schema Evolution
    https://milestone.top/blog/event-sourcing-patterns-schema-evolution-upcasting/

ํ•œ๊ตญ์–ด ์นœํ™”์ ์ธ ์„ค๋ช… + ์ฝ”๋“œ ์˜ˆ


  1. Chris Richardson โ€“ Evolving Your Event Schema
    https://microservices.io/patterns/ux/event-versioning.html

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค + ์ด๋ฒคํŠธ ๋ฒจ๋ฅ˜ ๊ฐ์ฒด(sv) ๊ธฐ์ค€ ๋“ฑ์žฅ


๐Ÿ“„ Slides / Talks

  1. Johan Haleby โ€“ Evolving Event Sourced Systems
    https://www.youtube.com/watch?v=3v3_bthM4Tg

upcasting, rehydration ํŒจํ„ด ์ค‘์‹ฌ


๐Ÿ“˜ 2. Practical Guide / Code Examples

๐Ÿง  ๊ตฌํ˜„ ์ „๋žต ์ค‘์‹ฌ

  1. Event Sourcing in .NET with upcasting (MS Docs style)
    https://docs.microsoft.com/en-us/azure/architecture/patterns/event-sourcing

์—ญ์‹œ ๋ฒ„์ €๋‹ ํŒŒํŠธ๊ฐ€ ์žˆ์Œ


  1. AxonUpcasterChain Example (Java)
    GitHub ๊ฒ€์ƒ‰:
    Axon Framework Upcaster example

Upcaster๊ฐ€ ์ฒด์ธ์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ๊ตฌํ˜„ ์˜ˆ์‹œ


๐Ÿ“ฆ Framework-specific

  1. EventStoreDB โ€“ Evolving Event Schemas
    https://developers.eventstore.com/server/v21.6/clients/event-sourcing-schema-evolution.html

EventStore๋ฅผ ๊ธฐ์ค€์œผ๋กœ upcasting, metadata, categorization ์„ค๋ช…


๐Ÿ“˜ 3. ์—„๊ฒฉํ•œ ์ด๋ก  & ๊ณตํ†ต ์‹ค์ˆ˜

  1. Udi Dahan โ€“ Event Versioning Anti-Patterns
    https://udidahan.com/2013/03/01/versioning-with-event-sourcing/

๊ฐ€์žฅ ์œ„ํ—˜ํ•œ ์‹ค์ˆ˜๋“ค


  1. Greg Young โ€“ Event Sourcing Q&A + Patterns
    https://cqrs.wordpress.com/documentation/versioning/

์›์กฐ CQRS/ES์˜ ์—…์บ์Šคํ„ฐ ๊ฐœ๋…


๐Ÿ“˜ 4. ๋ธ”๋กœ๊ทธ ๋ฒˆ์—ญ/ํ•œ๊ตญ์–ด ์ž๋ฃŒ

  1. DoneJS โ€” ์ด๋ฒคํŠธ ์Šคํ‚ค๋งˆ ์ง„ํ™”
    https://learn.donejs.com/recipes/event-sourcing-versioning.html

์ƒ๋Œ€์ ์œผ๋กœ ์‰ฌ์šด ํ•œ๊ตญ์–ด ๊ธฐ๋ฐ˜ ํ•ด์„ค


  1. ์ด๋ฒคํŠธ์†Œ์‹ฑ ์‹ค์ „ ์ •๋ฆฌ (TDD ๋ฐ”ํƒ•)
    https://meetup.toast.com/posts/xxx

(๊ตฌ์ฒด ๋งํฌ๋Š” ๊ฒ€์ƒ‰ ํ‚ค์›Œ๋“œ:
์ด๋ฒคํŠธ์†Œ์‹ฑ ๋ฒ„์ „ ๊ด€๋ฆฌ upcaster)